home *** CD-ROM | disk | FTP | other *** search
/ Shareware Grab Bag / Shareware Grab Bag.iso / 011 / resetsw.arc / RESETSW.TXT < prev   
Encoding:
Text File  |  1986-01-05  |  7.3 KB  |  160 lines

  1.           Hardware Reset Button and Survivable RAM disk
  2.  
  3. The IBM/PC lacks a hardware reset button.  Not only is this a 
  4. nuisance, but it makes using a RAM disk dangerous.  If the 
  5. computer really locks up, so CTL-ALT-DEL doesn't work, it's red 
  6. switch time.  Say Bye-bye to the contents of your RAM disk.
  7.  
  8. This article gives simple directions for installing a reset 
  9. button (no soldering inside the PC.)  It also gives simple 
  10. modifications to the device driver EDISK.COM, available on many 
  11. bulletin boards, to install a 128K RAM disk that will survive a 
  12. CTL-ALT -DEL reboot or a hardware reset.  This RAM disk is 
  13. installed in the high memory above 640K, so it requires a memory 
  14. expansion board with DIP switches to specify starting memory 
  15. location.  The IBM board has these switches, but many don't, so 
  16. check before you buy the board.  The RAM disk occupies segments 
  17. D000h to F000h.  (This 128K was reserved for ROM cartridges in 
  18. the PC jr.)
  19.  
  20.  
  21. 1. Installing the Hardware Reset Button
  22.  
  23. The purpose of the reset button is to reboot the computer without 
  24. having to turn it off and on again.  This is done by momentarily 
  25. grounding the "power good" line. Usually the computer does a warm 
  26. boot when this happens, but occasionally it does a cold boot, 
  27. including Power-on-Self-Test (POST).  I don't know what 
  28. determines which boot is taken, but the RAM disk to be described 
  29. here will survive either with its contents intact.  A hardware 
  30. reset button is also kind to your hard disk, which is more likely 
  31. to suffer head crashes when the PC is turned off and on 
  32. frequently.
  33.  
  34. The easiest place to ground the "power good" line is at the 8284A 
  35. clock generator chip.  Parts needed include a momentary push 
  36. button switch, an 18-pin IC socket, and a cover plate of the type 
  37. used to cover the adapter card cutouts on the PC's rear panel.  
  38. The plate can be removed from the PC, because you will be 
  39. reinstalling it.  Drill a hole in the middle of the cover plate 
  40. and mount the push button switch through it with the button on 
  41. the "outside" side of the plate.  Solder two eight inch long 
  42. wires between the switch terminals and pins 9 and 11 on the IC 
  43. socket as shown on the diagram:
  44.                                  ___________________ 
  45.                                 |                   |
  46.              ___________________|_____              |
  47.             | 18                11 10 |             |
  48.             |                         |             o
  49.       notch |o    18 PIN IC SOCKET    |           switch
  50.             |                         |             o
  51.             |_1_____________________9_|             |
  52.                                     |               |
  53.                                     |_______________|
  54.  
  55. Use fine wire and solder to the pins as close to the socket as 
  56. possible.  Note that there is a notch at one end of the socket to 
  57. identify which end is which.
  58.  
  59. Now disconnect the PC's power cord and remove the cover.  Locate 
  60. the 8284A IC at the right rear of the system board near the 
  61. keyboard jack and crystal.  Note which way the notch on the IC 
  62. points.  It should point to the left if you are facing the case 
  63. from the front.  Remove the IC using an IC puller or a small 
  64. screwdriver to pry it up.  (I recommend getting a puller at Radio 
  65. Shack.  They're cheap.  I also recommend that you ground yourself 
  66. to the PC's case using a length of wire before you touch any IC.  
  67. Otherwise static electricity can fry your IC's.  Attaching the 
  68. wire to your metal watch band works well.)  If you bend any pins, 
  69. straighten them carefully with a needle-nose pliers.
  70.  
  71. Insert the wired IC socket into the original socket of the 8284A, 
  72. making sure the notch points the same way as on the original 
  73. socket.  Reinsert the 8284A into the wired socket.  You now have 
  74. a "wedding cake" of original socket, new socket, and IC, each of 
  75. which has its notch pointing the same way.
  76.  
  77. Remove a blank cover plate from the rear panel of the PC, unless 
  78. you already did this.  Replace it by the cover plate with the 
  79. wired push-button switch.  Close up the PC, reconnect its power 
  80. cord, and fire it up.  When you see the prompt, push the switch 
  81. button momentarily.  You should hear a click from the 
  82. loudspeaker, and the PC should reboot.  Your hardware reset 
  83. switch is installed.
  84.  
  85. 2.  Survivable RAM disk
  86.  
  87. For this, you need to install a memory expansion board 
  88. with 128K and switches set for segment D000.  The instructions 
  89. are in the file RAMDISK.TXT, available on many bulletin boards.  
  90. This information is also in the Power User column of PC Magazine, 
  91. vol 4 no 21, October 15, 1985. If you don't have access to either 
  92. of these sources, just use a standard IBM 64/256K Memory 
  93. Expansion Option board or equivalent.  Set the DIP switches thus:
  94.  
  95.          1    2    3    4    5    6    7    8
  96.         OFF  OFF  ON   OFF  OFF  ON   OFF  OFF
  97.  
  98. This configures the board for 128K at segment addresses D000h and 
  99. E000h.
  100.  
  101. Next you modify EDISK.COM, also available on many bulletin 
  102. boards, so that it asks you whether to initialize its RAM disk 
  103. memory on cold boot.  When you first power up, you initialize.  
  104. (Failure to initialize leads to memory parity errors.)  When you 
  105. do a hardware reset you do not initialize.  That way, the only 
  106. way to lose the contents of the RAM disk is by total power loss.
  107.  
  108. The modification is made to EDISK.ASM at the label COLD_START:
  109.  
  110. COLD_START:          ; Initialize memory to avoid PARITY errors          
  111. ;/MCN addition: ask if ramdisk should be initialized at cold boot 
  112. ;Clobbers AX
  113.       PUSH     DS
  114.       PUSH     CS;Transfer CS to DS
  115.       POP      DS
  116.       LEA      DX,WHICH_MESS;Ramdisk clobber message
  117.       MOV      AH,9;Print string function
  118.       INT      21H
  119.       MOV      AH,1;Keyboard input function
  120.       INT      21H
  121.       POP      DS
  122.       CMP      AL,'Y';If capital Y
  123.       JZ       COLD_CONT
  124.       CMP      AL,'y';Or lower case y
  125.       JZ       COLD_CONT;Continue with cold start
  126.       JMP      HOT_START;Else treat as hot start
  127. WHICH_MESS:   DB       "Initialize Hi-RAM disk (y/n)?$"
  128. COLD_CONT:
  129. ;\MCN addition end
  130.               SUB      AX,AX                 ;Byte to write (null)
  131.               MOV      ES,CS:VDISK_PTR       ;Get start addr of 1st 
  132.                                              ;64K sector
  133.  
  134. etc...
  135.  
  136. MCN is my son, who coded the modification.
  137.  
  138. With this change to EDISK, a cold boot gives you the message 
  139. "Initialize Hi-RAM disk (y/n)?"  Only if you answer Y (or y) will 
  140. the RAM disk be initialized.  On first power-up answer Y, on 
  141. hardware reset answer N or <RETURN> to preserve the RAM disk 
  142. contents.
  143.  
  144. I have uploaded the file RESETSW.ARC to Stan Staten's board (301-
  145. 670-9621) and to Tim Conner's board (301-353-3323.)  That file 
  146. contains RESETSW.TXT (this article), RAMDISK.TXT, EDISK2.ASM, AND 
  147. EDISK2.SYS.  The EDISK2 files include the modification to the 
  148. original EDISK to prompt for RAM disk initialization on cold 
  149. boot.
  150.  
  151. If there were a way to keep POST from initializing normal memory 
  152. on hardware reset, one could install a survivable RAM disk 
  153. without using a memory expansion board, and it could be larger 
  154. than 128K.  I haven't been able to figure out how to do this.  
  155. Can anyone help?
  156.  
  157. David B. Nelson
  158. 2311 Spencer Road
  159. Silver Spring, MD 20910
  160.